package com.enzoism.springboot.fastjson.a04transfer.threat2.pack1;

/**
 * 创建一个含有private域和private方法的类。创建一个内部类，他有一个方法可以用来修改外围类的域。
 * 并调用外围类的方法。在外围类的另一个方法中，创建此内部类的对象，并且调用他的方法，然后说明对外围类对象的影响
 */
public class DiveClass {
    private String name;
    private DiveClass(String name){this.name = name;}
    private void printString(){
        System.out.println("--------DiveClassName:"+name);
    }
    private void changeName(String name){
        this.name = name;
    }
    class InnerClass {
        private String age;
        public void changeOutClassName(){
            DiveClass diveClass = DiveClass.this;
            diveClass.printString();
            diveClass.changeName("小明"+age);
            diveClass.printString();
        }
        public void printInner(){
            DiveClass diveClass = DiveClass.this;
            diveClass.printString();
        }
    }

    public static void main(String[] args) {
        DiveClass diveClass = new DiveClass("小花");
        InnerClass innerClass = diveClass.new InnerClass();
        innerClass.age = "18";

        innerClass.printInner();
        innerClass.changeOutClassName();
    }


}
